Revert "inspector: Stop adding event controllers to the object tree"
authorMatthias Clasen <mclasen@redhat.com>
Thu, 18 Jan 2018 04:49:17 +0000 (23:49 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 18 Jan 2018 04:49:17 +0000 (23:49 -0500)
This reverts commit 8f3cb2658a79d20912b6f2ec96bc7e6bbdaeb067.

This didn't quite work out, since being in the object tree is
a prerequisite for showing up in the property editor.

gtk/inspector/object-tree.c

index 55886036fd6935c7190c4e582b02ec7e0422b749..d4a491de66741f129bc919ddd616e1dda6d38ca9 100644 (file)
@@ -141,8 +141,31 @@ object_tree_widget_forall (GObject              *object,
                            ObjectTreeForallFunc  forall_func,
                            gpointer              forall_data)
 {
+  struct {
+    GtkPropagationPhase  phase;
+    const gchar         *name;
+  } phases[] = {
+    { GTK_PHASE_CAPTURE, "capture" },
+    { GTK_PHASE_TARGET,  "target" },
+    { GTK_PHASE_BUBBLE,  "bubble" },
+    { GTK_PHASE_NONE,    "" }
+  };
+  gint i;
   GtkWidget *child;
 
+  for (i = 0; i < G_N_ELEMENTS (phases); i++)
+    {
+      GList *list, *l;
+
+      list = _gtk_widget_list_controllers (GTK_WIDGET (object), phases[i].phase);
+      for (l = list; l; l = l->next)
+        {
+          GObject *controller = l->data;
+          forall_func (controller, phases[i].name, forall_data);
+        }
+      g_list_free (list);
+    }
+
    if (gtk_widget_is_toplevel (GTK_WIDGET (object)))
      {
        GObject *clock;